﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using SIGERP_Entidades;

namespace SIGERP_Datos
{
    public class HndPaises
    {

        public static List<Pais> GetAll()
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.pais");
            var paises = new List<Pais>();
            foreach (DataRow dtRow in tabla.Rows)
            {
                Pais p = new Pais(dtRow);
                paises.Add(p);
            }
            return paises;

        }

        public static List<Pais> Exist(string nombre)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.pais where descripcion='" + nombre +"'");
            var paises = new List<Pais>();
            foreach (DataRow dtRow in tabla.Rows)
            {
                Pais p = new Pais(dtRow);
                paises.Add(p);
            }

            return paises;
        }

        public static Pais GetOne(int id)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.pais WHERE id_pais=" + id);
            DataRow dtRow = tabla.Rows[0];
            Pais a = new Pais(dtRow);
            return a;
        }

        public static void Insert(Pais pais)
        {
            SqlCommand comando = new SqlCommand();
            comando.CommandText = "INSERT INTO Pais(descripcion) " + "VALUES (@descripcion)";
            comando.Parameters.AddWithValue("@descripcion", pais.descripcion);

            Conexion.ejecutaComando(comando);
        }

        public static void Update(Pais pais)
        {
            SqlCommand comando = new SqlCommand();
            comando.CommandText = "UPDATE dbo.pais SET descripcion=@descripcion " + "WHERE id_pais=" + pais.id;
            comando.Parameters.AddWithValue("@descripcion", pais.descripcion);//pais.Nombre

            Conexion.ejecutaComando(comando);
        }

        public static void Delete(Pais p)
        {
            SqlCommand comando = new SqlCommand();
            comando.CommandText = "delete from pais where id_pais=" + p.id;

            Conexion.ejecutaComando(comando);
        }

        public static bool verificarSiHayProvinciasAsociadas(Pais p)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT COUNT(*) FROM dbo.provincia WHERE id_pais=" + p.id);
            DataRow dtRow = tabla.Rows[0];

            bool existe = false;
            if (Convert.ToInt32(dtRow[0]) > 0) existe = true;
            return existe;
        }

        public static bool verificarSiHayClientesAsociados(Pais p)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT COUNT(*) FROM dbo.cliente WHERE id_nacionalidad=" + p.id);
            DataRow dtRow = tabla.Rows[0];

            bool existe = false;
            if (Convert.ToInt32(dtRow[0]) > 0) existe = true;
            return existe;
        }
    }
}
